package com.ruoyi.dangerControl.service.impl;

import java.util.List;
import java.util.stream.Collectors;

import com.ruoyi.dangerControl.domain.HdTrainDept;
import com.ruoyi.dangerControl.dto.HdTrainDto;
import com.ruoyi.dangerControl.mapper.HdTrainDeptMapper;
import com.ruoyi.dangerControl.vo.HdTrainVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.dangerControl.mapper.HdTrainMapper;
import com.ruoyi.dangerControl.domain.HdTrain;
import com.ruoyi.dangerControl.service.IHdTrainService;

/**
 * 隐患-培训管理Service业务层处理
 *
 * @author lth
 * @date 2023-12-13
 */
@Service
public class HdTrainServiceImpl implements IHdTrainService
{
    @Autowired
    private HdTrainMapper hdTrainMapper;

    @Autowired
    private HdTrainDeptMapper hdTrainDeptMapper;

    /**
     * 查询隐患-培训管理
     *
     * @param id 隐患-培训管理主键
     * @return 隐患-培训管理
     */
    @Override
    public HdTrain selectHdTrainById(Long id)
    {
        return hdTrainMapper.selectHdTrainById(id);
    }

    /**
     * 查询隐患-培训管理列表
     *
     * @param hdTrain 隐患-培训管理
     * @return 隐患-培训管理
     */
    @Override
    public List<HdTrain> selectHdTrainList(HdTrain hdTrain)
    {
        return hdTrainMapper.selectHdTrainList(hdTrain);
    }

    /**
     * 新增隐患-培训管理
     *
     * @param hdTrain 隐患-培训管理
     * @return 结果
     */
    @Override
    public int insertHdTrain(HdTrain hdTrain)
    {
        return hdTrainMapper.insertHdTrain(hdTrain);
    }

    /**
     * 修改隐患-培训管理
     *
     * @param hdTrain 隐患-培训管理
     * @return 结果
     */
    @Override
    public int updateHdTrain(HdTrain hdTrain)
    {
        return hdTrainMapper.updateHdTrain(hdTrain);
    }

    /**
     * 批量删除隐患-培训管理
     *
     * @param ids 需要删除的隐患-培训管理主键
     * @return 结果
     */
    @Override
    public int deleteHdTrainByIds(Long[] ids)
    {
        return hdTrainMapper.deleteHdTrainByIds(ids);
    }

    /**
     * 删除隐患-培训管理信息
     *
     * @param id 隐患-培训管理主键
     * @return 结果
     */
    @Override
    public int deleteHdTrainById(Long id)
    {
        return hdTrainMapper.deleteHdTrainById(id);
    }

    /**          培训管理-编辑
    * @Author lth
    * @Description //TODO
    * @Date 19:32 2023/12/20
    * @Param
    * @return
     **/
    @Override
    public HdTrainDto getInfo(HdTrainVo vo) {
        Long trainId = vo.getId();
        HdTrainDept hdTrainDept = hdTrainDeptMapper.getListByTrainId(trainId);
        HdTrain hdTrain = hdTrainMapper.selectHdTrainById(trainId);
        HdTrainDto hdTrainDto = new HdTrainDto();
        BeanUtils.copyProperties(hdTrain, hdTrainDto);
        hdTrainDto.setDeptList(hdTrainDept);
        return hdTrainDto;
    }
}
